function G = Gq(q)
q1=q(1);   q2=q(2);   q3=q(3);   q4=q(4);

G11 = -(q3+q2)/((q3+q2)^2 + (q4+q1)^2) + (q3-q2)/((q3-q2)^2 + (q4-q1)^2);
G12 = (q4+q1)/((q3+q2)^2 + (q4+q1)^2) - (q4-q2)/((q3-q2)^2 + (q4-q1)^2);
G13 = (q4+q1)/((q3+q2)^2 + (q4+q1)^2) + (q4-q2)/((q3-q2)^2 + (q4-q1)^2);
G14 = -(q3+q2)/((q3+q2)^2 + (q4+q1)^2) - (q3-q2)/((q3-q2)^2 + (q4-q1)^2);

G21 = (2*q4)/sqrt(1-4*(q2*q3 + q1*q4)^2);
G22 = (2*q3)/sqrt(1-4*(q2*q3 + q1*q4)^2);
G23 = (2*q2)/sqrt(1-4*(q2*q3 + q1*q4)^2);
G24 = (2*q1)/sqrt(1-4*(q2*q3 + q1*q4)^2);

G31 = G11;
G32 = G12;
G33 = G13;
G34 = G14;

G = [G11, G12, G13, G14;
     G21, G22, G23, G24;
     G31, G32, G33, G34];
end